home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / program / amos / examples.lha / Salim_Amos_Sources / Plasmicubes.Amos / Plasmicubes.amosSourceCode < prev    next >
AMOS Source Code  |  1995-08-30  |  5KB  |  291 lines

  1. '
  2. '
  3. ' Plasmicubes intro
  4. '
  5. ' Pre Calulated version ( a load of icons .... ) 
  6. '
  7. ' if not enough memry uncomment the 'erases' in PLASCUB proc 
  8. '
  9. '
  10. ' (c) Gasmi Salim
  11. '  
  12.  
  13.  
  14. Break Off 
  15.  
  16. Procedure DEB
  17. Unpack 7 To 0
  18. Screen Hide 0
  19. Get Block 1,0,0,320,200
  20. Screen Close 0
  21. Unpack 6 To 0
  22. Screen Display 0,,,,24
  23. AM$="I: LY=0 LR0=-24 B: LR0=-1*R0 A: IY=0 JD IY=336 JD E: LY=Y+R0 P P IY>312 JB IY<24 JB JA D: P P P P P P P P P P P P P P P P P P P P P P P P P P JE:"
  24. Channel 1 To Screen Offset 0
  25. Amal 1,AM$
  26. Global EC
  27. LEC=390
  28. LO2=32 : Rem taille x fonts 
  29. LA2=32 : Rem taille y fonts 
  30. VIT2=6 : Rem vitesse scroll 
  31. DIS2=123 : Rem base ecran scroll
  32. ESP=6
  33. Def Scroll 2,0,0 To LEC,40,-VIT2,0
  34. '------------------------------------  
  35. S1=1 : S2=1
  36. Hide 
  37. Unpack 5 To 7
  38. Screen Hide 
  39. C2$="abcdefghijklmnopqrstuvwxyz:().,'!1234567890? "
  40. NL=Len(C2$)
  41. Dim X2(NL),Y2(NL)
  42. For Y=1 To 5
  43.    For X=1 To 10
  44.       XC=(X-1)*LO2
  45.       YC=(Y-1)*LA2
  46.       Inc U
  47.       If U>NL Then Goto TROULA
  48.       X2(U)=XC
  49.       Y2(U)=YC
  50.    Next X
  51. Next Y
  52. TROULA:
  53. K=18
  54. Unpack 4 To 6
  55. Screen Hide 6
  56. Screen Open 3,380,200,64,0
  57. Flash Off 
  58. Get Palette 6
  59. Screen Copy 6,0,0,380,200 To 3,4,0
  60. Screen Close 6
  61. Put Block 1,16,0,%100000
  62. Screen Display 3,123,67,380,
  63. Shift Up 1,0,31,1
  64. Screen Open 2,LEC,35,8,Lowres
  65. Screen Display 2,DIS2,269,LEC,
  66. Flash Off 
  67. Get Palette 7
  68. Cls 0
  69. '
  70. '--------------------- 
  71. '--------------------- 
  72. '
  73. TX2$=TX2$+"yooo !! 96 cubes on a sinus flag with plasma in each cube ......."
  74. TX2$=TX2$+"116 colors on screen!!!! click on the mouse if you dont believe it ..."
  75. TX2$=TX2$+"code by salim - music by gorex - fonts by slayer ....."
  76. TX2$=TX2$+"may the source be with you  ........................"
  77. '
  78. '------------------------
  79. '
  80. Amal On 
  81. Do 
  82.    Gosub STEXT
  83.    TMOUSE
  84.    Exit If Param=0
  85.    While Mouse Key=2
  86.    Wend 
  87.    Wait Vbl 
  88. Loop 
  89. Screen Hide 2
  90. Screen Close 2
  91. Screen Close 0
  92. Screen Close 7
  93. Screen Close 3
  94.  
  95. ' uncomment the erases if not enough memory  
  96. ' but dont re-run the intro if u do so 
  97. '
  98.  
  99. 'Erase 4 
  100. 'Erase 5 
  101. 'Erase 6 
  102. 'Erase 7 
  103.  
  104. Pop Proc
  105. Rem ------ SCROLL TEXT ROUTINE ----------
  106. Rem
  107. STEXT:
  108. Screen 2 : Scroll 2 : Inc P2
  109. If P2<>(ESP) Then Return 
  110. P2=0
  111. Add C2,1,1 To Len(TX2$)
  112. E$=Mid$(TX2$,C2,1)
  113. E=Instr(C2$,E$)
  114. If E=0 Then Return 
  115. Screen Copy 7,X2(E),Y2(E),X2(E)+LO2,Y2(E)+LA2 To 2,340,3
  116. Return 
  117. End Proc
  118. Procedure PLASCUB
  119.    ST=Start(12)
  120.    Timer=0
  121.  
  122.    VB=True
  123.    FD=$666
  124.    Colour Back FD
  125.    No Icon Mask 
  126.    On Error Goto FIN
  127.    Break Off 
  128.    Dim BP(10)
  129.    NN=6 : Rem Maximum a 7  
  130.    Dim SAV(7,100)
  131.    TE=384+32+32+32+32-1
  132.    '
  133.    '
  134.    '
  135.    Unpack 11 To 7
  136.    Screen Hide 7
  137.    BB0=Logbase(0)
  138.    BB1=Logbase(1)
  139.    BB2=Logbase(2)
  140.    BB3=Logbase(3)
  141.    ADR=Screen Base
  142.    For J=ADR To ADR+68 Step 4
  143.       SAV(7,J-ADR)=Leek(J)
  144.    Next 
  145.    Screen Display 7,,40+32*7,,
  146.    For I=1 To NN
  147.       Screen Open I,2*TE,32,64,0
  148.       Screen Hide I
  149.       Screen Offset I,0,0
  150.       XH=X Hard(450)
  151.       Screen Display I,,40+32*I,,
  152.       ADR=Screen Base
  153.       For J=ADR To ADR+68 Step 4
  154.          SAV(I,J-ADR)=Leek(J)
  155.       Next 
  156.       Cls 0
  157.    Next 
  158.    '
  159.    '
  160.    '
  161.    '
  162.    '
  163.    '
  164.    Screen Open 0,2*TE,32,4,0
  165.    Screen Hide 0.0
  166.    Screen Display 0,,40,,
  167.    Screen Offset 0,0,0
  168.    PX=0
  169.    For JJ=0 To 1
  170.       BP(JJ)=Logbase(JJ)
  171.    Next JJ
  172.    Flash Off 
  173.    Hide On 
  174.    '
  175.    'on detourne 
  176.    '
  177.    For S=1 To 7
  178.       Screen S
  179.       ADR=Screen Base
  180.       Loke ADR,BB0
  181.       Loke ADR+4,BB1
  182.       Loke ADR+8,BB2
  183.       Loke ADR+12,BB3
  184.       Loke ADR+16,BP(0)
  185.       Loke ADR+20,BP(1)
  186.       Loke ADR+24,BB0
  187.       Loke ADR+28,BB1
  188.       Loke ADR+32,BB2
  189.       Loke ADR+36,BB3
  190.       Loke ADR+40,BP(0)
  191.       Loke ADR+44,BP(1)
  192.       Loke ADR+48,BB0
  193.       Loke ADR+52,BB1
  194.       Loke ADR+56,BB2
  195.       Loke ADR+60,BB3
  196.       Loke ADR+64,BP(0)
  197.       Loke ADR+68,BP(1)
  198.       Flash Off 
  199.       If S=1 Then OFF=$C00
  200.       If S=2 Then OFF=$A00
  201.       If S=3 Then OFF=$800
  202.       If S=4 Then OFF=$600
  203.       If S=5 Then OFF=$400
  204.       If S=6 Then OFF=$200
  205.       If S=7 Then OFF=$0
  206.       Palette FD,FD,FD,FD,FD,FD,FD,FD,FD,FD,FD,FD,FD,FD,FD,FD,$0,3+OFF,5+OFF,7+OFF,9+OFF,11+OFF,13+OFF,15+OFF,14+OFF,12+OFF,10+OFF,8+OFF,6+OFF,4+OFF,2+OFF,0+OFF
  207.    Next S
  208.    '
  209.    '
  210.    Degree 
  211.    Screen 0
  212.    NO=1
  213.    Dim S#(360)
  214.    For I=0 To 360
  215.       S#(I)=Sin(I)*31+60
  216.    Next 
  217.    Palette FD,$F00,$C00,$900
  218.    XI=16
  219.    POS=0
  220.    Dim PTR(7)
  221.    For I=1 To 7
  222.       PTR(I)=(I-1)*120
  223.    Next 
  224.    Do 
  225.       AG:
  226.       Screen 0
  227.       XI=XI+1
  228.       If XI=32 Then XI=17
  229.       Add IC,1,1 To 328
  230.       If LET>15 Then PX=0 : LET=0
  231.       Paste Icon XH+32*LET,0,IC
  232.       Paste Icon XH-TE+32*LET,0,IC
  233.       For J=0 To 7
  234.          PTR(J)=PTR(J)+2
  235.          If PTR(J)>5518 Then PTR(J)=480
  236.          AA=AL+J*45
  237.          AA=AA mod 360
  238.          Screen Offset J,PX+J*8+S#(AA),
  239.          Screen J
  240.          Colour XI,Deek(ST+PTR(J))
  241.       Next J
  242.       Add AL,5
  243.       If VB Then Wait Vbl 
  244.       PX=PX+32
  245.       Inc LET
  246.       TMOUSE
  247.       Exit If Param=0
  248.       If NO=0 Then Goto AG
  249.       If LET=15
  250.          NO=0
  251.          For K=0 To 7
  252.             Screen Show K
  253.          Next 
  254.       End If 
  255.    Loop 
  256.    FIN:
  257.  
  258.    For J=0 To 7
  259.       Screen Hide J
  260.    Next 
  261.    For I=1 To 7
  262.       Screen I
  263.       ADR=Screen Base
  264.       For J=0 To 68 Step 4
  265.          Loke ADR+J,SAV(I,J)
  266.       Next 
  267.       Screen Close I
  268.    Next 
  269.  
  270.    Screen Close 0
  271.    If Errn<>0 Then Error Errn
  272.  
  273. End Proc
  274. Procedure TMOUSE
  275. X=Peek($BFE001)
  276. End Proc[Btst(6,X)]
  277.  
  278. '
  279. ' if the mouse button does not respond while running 
  280. ' reboot (what else ?) and remove the execall(-132) and (-138) 
  281. '  
  282. '  
  283. '
  284.  
  285. J=Execall(-132)
  286.  
  287. Track Play 8
  288. DEB
  289. PLASCUB
  290.  
  291. J=Execall(-138)